home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- * *
- * Chat_main.m *
- * Copyright 1992 by Nik A Gervae *
- * *
- * Part of an example using the Objective-C classes (SktSocketManager, *
- * SktSocket, and SktSocketUser) which implement a convenient interface to *
- * Berkeley stream sockets under NeXTSTEP(r). See the accompanying class *
- * specifications (files with a .rtf or .spec suffix) and the sources for *
- * further information. *
- * *
- * NeXTSTEP is a registered trademark of NeXT Computer, Inc. *
- * *
- ****************************************************************************
- * *
- * LICENSE *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation. *
- * *
- * The program and this makefile are distributed in the hope that it will *
- * be useful, but are provided "AS IS" AND WITHOUT ANY WARRANTY; without *
- * any express or implied warranty of MERCHANTABILITY or FITNESS FOR A *
- * PARTICULAR PURPOSE. See the GNU General Public License for more details. *
- * Any use or distribution of the program and documentation must include *
- * appropriate copyrights to acknowledge Nik A. Gervae and the Free *
- * Software Foundation, Inc. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the Free Software *
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
- * *
- ****************************************************************************
- * *
- * VERSION HISTORY *
- * *
- * Version numbers are simply dates in the form YYYYMMDD. These represent *
- * the date that version was finished. Only significantly changed versions *
- * are reported here, or those versions requiring explanation of changes. *
- * There may be many interim stages between dated versions. *
- * *
- * DateVersion Primary Author Notes *
- * ----------- --------------- -------------------------------------------- *
- * 19920327 Nik A Gervae First released version *
- * *
- ***************************************************************************/
-
- #import <stdlib.h>
- #import <stdio.h>
- #import <ctype.h>
-
- #import <sys/types.h>
- #import <netinet/in.h>
-
- #import <objc/Object.h>
-
- #import "Chatserver.h"
- #import "chat_main.h"
-
- id Global_Chatserver; // the controller for program
-
- /***************************************************************************
- * *
- * These are the constant strings used. Feel free to translate them into *
- * your favorite language. Do be sure to keep all the % directives in *
- * place, or change the code that accesses these strings. *
- * *
- ***************************************************************************/
- #define STR_ReservedPort "Attempt to use a reserved port (%d).\n"
- #define STR_DefaultPortInstead "Trying default Internet port instead (%d).\n"
- #define STR_TryingDefaultPort "Trying default Internet port (%d).\n"
-
-
-
- /***************************************************************************
- * *
- * main() *
- * *
- * Check the args, make a server, and go! *
- * *
- ***************************************************************************/
- int main(int argc, char *argv[])
- {
- int inetPort;
-
- /*
- * Check cmd line args.
- */
- if (1 < argc) {
-
- if ((inetPort = atoi(argv[1])) < IPPORT_RESERVED) {
- fprintf(stderr, STR_ReservedPort, inetPort);
- fprintf(stderr, STR_DefaultPortInstead, DFLT_INETPORT);
- inetPort = DFLT_INETPORT;
- }
-
- }
- else {
- inetPort = DFLT_INETPORT;
- fprintf(stderr, STR_TryingDefaultPort, DFLT_INETPORT);
- }
-
- /*
- * Make a new controller/server.
- */
- Global_Chatserver = [[Chatserver alloc] initWithInetPort:inetPort];
-
- if (!Global_Chatserver) exit(1);
-
- /*
- * Run forever. Ctrl-C is a handy way to bomb out of the server.
- */
- [Global_Chatserver run];
- [Global_Chatserver shutdown];
-
- exit(0);
-
- } /*main*/